package wzs.arithmetics;

//整数a除以整数b(b≠0) 除得的商正好是整数而没有余数，我们就说a能被b整除，或b能整除a。a叫b的倍数，b叫a的约数（或因数）。
//4的约数有：1、2、4。
//如果一个数c既是数a的因数，又是数b的因数，那么c叫做a与b的公因数。可以表示为(a，b)=c。
/*
最大公因数的求法
1、 枚举法将两个数的因数分别一一列出，从中找出其公因数，再从公因数中找出最大的一个，即为这两个数的最大公因数。
例：求30与24的最大公因数。
30的因数有：1,2,3,5,6,10,15,30
24的因数有：1,2,3,4,6,8,12,24
易得其公因数中最大的一个是6，所以30和24的最大公约数 是6。
*/


//求两个数最大公约数和最小公倍数。 
//如果有一个自然数a能被自然数b整除，则称a为b的倍数，b为a的约数。几个自然数公有的约数，叫做这几个自然数的公约数。
//公约数中最大的一个公约数，称为这几个自然数的最大公约数。 

//几个数共有的倍数叫做这几个数的公倍数，其中最小的一个公倍数，叫做这几个数的最小公倍数。

//f（x, y）= f（y, x%y）（y > 0）最大公约数
//最小公倍数=两数的乘积/最大公约（因）数

public class Test_wzs6
{
	public static void main(String[] args)
	{
		int x = 30;
		int y = 24;
		System.out.println(f(x,y));
		System.out.println(x*y/f(x, y));
	}
	
	public static int f(int x, int y)
	{
		if (x <0 || y <0)
		{
			return -1;
		}
		System.out.println("x-->"+x + "   y-->"+y);
		if(y == 0) return x;
		return f(y,  x%y);
	}
}
